home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / CC_C / 1116.ZIP / TOOLKIT.ARC / SOUNDEX.C < prev    next >
Text File  |  1979-12-31  |  4KB  |  94 lines

  1.  
  2. /*****************************************************************/
  3. /*                                                               */
  4. /*   soundex.c    soundex  algorithm  implemented  in  smallc    */
  5. /*                                                               */
  6. /*      written by Wayne Pearson   RD2  Montpelier, Vt  05602    */
  7. /*                                                               */
  8. /*****************************************************************/
  9.  
  10. main()
  11.        {
  12.          inscreen();    /* make a data entry screen        */
  13.          workfile();    /* make a work file to hold string */
  14.          /* call soundex() from workfile() to pass namelen */
  15.        }
  16.  
  17. inscreen()
  18.            {
  19.              clrscreen();
  20.              putchar(13);
  21.              puts("     Enter the name to be converted: ");
  22.            }
  23.  
  24. workfile()
  25.            {
  26.              int *outf;
  27.              char name;
  28.              int namelen;
  29.              outf = fopen("soundex.wrk","w");
  30.              namelen = 0;
  31.              while (name != ' ')   /*  space ends input  */
  32.                    {
  33.                      name = getchar();
  34.                      name = putc(name,outf);
  35.                      ++namelen;
  36.                    }
  37.              fclose(outf);
  38.              putchar(13); putchar(13);
  39.              soundex();  /* make soundex code of user input */
  40.            }
  41.  
  42. soundex()
  43.           {
  44.             int *inf;
  45.             char codename, oldname;
  46.             int namelen, lcv;
  47.             puts("                 Soundex equivalent: ");
  48.             lcv = 0;
  49.             inf = fopen("soundex.wrk","r");
  50.             codename = getc(codename,inf);
  51.             codename = putchar(codename);
  52.             ++lcv;
  53.             while (lcv < namelen)
  54.                   {
  55.                     oldname = codename;
  56.                     codename = getc(codename,inf);
  57.                     if (oldname == codename) codename = '*';
  58.                     if ((codename == 'B')|(codename == 'b')|
  59.                         (codename == 'F')|(codename == 'f')|
  60.                         (codename == 'P')|(codename == 'p')|
  61.                         (codename == 'V')|(codename == 'v'))
  62.                                               codename = '1';
  63.                     if ((codename == 'C')|(codename == 'c')|
  64.                         (codename == 'G')|(codename == 'g')|
  65.                         (codename == 'J')|(codename == 'j')|
  66.                         (codename == 'K')|(codename == 'k')|
  67.                         (codename == 'Q')|(codename == 'q')|
  68.                         (codename == 'S')|(codename == 's')|
  69.                         (codename == 'X')|(codename == 'x')|
  70.                         (codename == 'Z')|(codename == 'z'))
  71.                                               codename = '2';
  72.                     if ((codename == 'D')|(codename == 'd')|
  73.                         (codename == 'T')|(codename == 't'))
  74.                                               codename = '3';
  75.                     if ((codename == 'L')|(codename == 'l'))
  76.                                               codename = '4';
  77.                     if ((codename == 'M')|(codename == 'm')|
  78.                         (codename == 'N')|(codename == 'n'))
  79.                                               codename = '5';
  80.                     if ((codename == 'R')|(codename == 'r'))
  81.                                               codename = '6';
  82.                     if ((codename == '1')|(codename == '2')|
  83.                         (codename == '3')|(codename == '4')|
  84.                         (codename == '5')|(codename == '6'))
  85.                                 codename = putchar(codename);
  86.                     ++lcv;
  87.                   }
  88.             fclose(inf);
  89.             putchar(13);
  90.           }
  91.  
  92.  
  93.  
  94.